package model;
import java.util.ArrayList;
import java.util.Date;

import view.ComodidadDTO;
import view.HabitacionDTO;
import view.HotelDTO;
import view.ImagenHotelDTO;
import view.ItemServicioDTO;
import view.ServicioDTO;
import model.Hotel;
import model.ItemServicio;



public class Servicio {
	private Integer id;
	private String nombre;
	private Date fechaDesde;
	private Date fechaHasta;
	private String descripcion;
	private Integer cantNoches;
	private Hotel hotel;
	private ArrayList<ItemServicio> items;
	private ArrayList<Integer> ocupacion;
	
	public Servicio(int id, String nombre, Date fechaDesde, Date fechaHasta,
			String descripcion, int cantNoches, Hotel hotel, 
			ArrayList<ItemServicio> items, ArrayList<Integer> ocupacion) {
		this.id = id;
		this.nombre = nombre;
		this.fechaDesde = fechaDesde;
		this.fechaHasta = fechaHasta;
		this.descripcion = descripcion;
		this.cantNoches = cantNoches;
		this.hotel= hotel;
		this.items = items;
		this.ocupacion = ocupacion;
	}

	public Servicio(ServicioDTO s) {
		this.id = s.getId();
		this.nombre = s.getNombre();
		this.fechaDesde = s.getFechaDesde();
		this.fechaHasta = s.getFechaHasta();
		this.descripcion = s.getDescripcion();
		this.cantNoches = s.getCantNoches();
		this.hotel= new Hotel(s.getHotel());		
		this.items = new ArrayList<ItemServicio>();
		for(ItemServicioDTO is : s.getItems())
		{
			this.items.add(new ItemServicio(is));
		}
		
		this.ocupacion = s.getOcupacion();
	}
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Date getFechaDesde() {
		return fechaDesde;
	}

	public void setFechaDesde(Date fechaDesde) {
		this.fechaDesde = fechaDesde;
	}

	public Date getFechaHasta() {
		return fechaHasta;
	}

	public void setFechaHasta(Date fechaHasta) {
		this.fechaHasta = fechaHasta;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Integer getCantNoches() {
		return cantNoches;
	}

	public void setCantNoches(Integer cantNoches) {
		this.cantNoches = cantNoches;
	}

	public Hotel getHotel() {
		return hotel;
	}

	public void setHotel(Hotel hotel) {
		this.hotel = hotel;
	}

	public ArrayList<ItemServicio> getItems() {
		return items;
	}

	public void setItems(ArrayList<ItemServicio> items) {
		this.items = items;
	}

	public ArrayList<Integer> getOcupacion() {
		return ocupacion;
	}

	public void setOcupacion(ArrayList<Integer> ocupacion) {
		this.ocupacion = ocupacion;
	}
	public ServicioDTO toDTO() {
		ArrayList<ItemServicioDTO> itemsDTO = new ArrayList<ItemServicioDTO>();		
		for(ItemServicio is : this.getItems())
		{
			itemsDTO.add(is.toDTO());
		}	
		ServicioDTO s = new ServicioDTO(this.getId()
				, this.getNombre()
				, this.getFechaDesde()
				, this.getFechaHasta()
				, this.getDescripcion()
				, this.getCantNoches()
				, this.getHotel().toDTO()
				, itemsDTO
				, this.getOcupacion());
		
		return s;
	
	}
	
}
